#include <stdio.h>
#include <string.h>
#include <list>

class Observer;

class Subject
{
private:
    /* data */
public:
    Subject(/* args */);
    ~Subject();
    void RegisterObserver(Observer*);
    void UnRegisterObserver(Observer*);
    void Notify();
private:
    std::list<Observer*> m_ObserverList;
};


